{% extends "base-left.html" %}
{% load staticfiles %}

{% block css %}
    <link rel="stylesheet" href="{% static 'plugins/datatables/jquery.dataTables.min.css' %}">
    <link rel="stylesheet" href="{% static 'js/plugins/layer/skin/layer.css' %}">
    <link rel="stylesheet" href="{% static 'plugins/select2/select2.min.css' %}">
{% endblock %}

{% block content %}

    <!-- Main content -->
  <section class="content">
    <div id="devlist">
        <div class="box box-primary" id="liebiao">
            <div class="box-header">
                <div class="btn-group pull-left">
                    <button type="button" id="btnRefresh" class="btn btn-default">
                        <i class="glyphicon glyphicon-repeat"></i> 刷新
                    </button>
                </div>
                <div class="btn-group pull-left">&nbsp</div>
                <div class="btn-group pull-left">
                    <button type="button" id="btnScan" class="btn btn-default" onclick="doScan()">
                        <i class="glyphicon glyphicon-search"></i> 执行扫描
                    </button>
                </div>
                <div class="btn-group pull-left">&nbsp</div>
                <div class="btn-group pull-left">
                    <button type="button" id="btnInbound" class="btn btn-default" onclick="doInbound()">
                        <i class="glyphicon glyphicon-floppy-disk"></i> 执行入库
                    </button>
                </div>
                <div class="btn-group pull-left">&nbsp</div>
                <div class="btn-group pull-left">
                    <button type="button" id="btnDelete" class="btn btn-default">
                        <i class="glyphicon glyphicon-trash"></i> 删除
                    </button>
                </div>
            </div>

            <div class="box-body">
                <table id="dtbList" class="display" cellspacing="0" width="100%">
                    <thead>
                    <tr valign="middle">
                        <th><input type="checkbox" id="checkAll"></th>
                        <th>ID</th>
                        <th>主机名</th>
                        <th>IP地址</th>
                        <th>MAC地址</th>
                        <th>认证类型</th>
                        <th>登陆状态</th>
                        <th>系统类型</th>
                        <th>设备类型</th>
                        <th>操作</th>
                    </tr>
                    </thead>
                    <tbody>
                    </tbody>
                </table>
                <br>
                <small>点击【执行入库】可将扫描结果中，登陆状态为：成功（succeed）的设备数据导入正式设备管理数据库。</small>
            </div>
        </div>
    </div>

  </section>

    <!-- /.content -->

{% endblock %}


{% block javascripts %}

<script src="{% static 'plugins/datatables/jquery.dataTables.min.js' %}"></script>
<script src="{% static 'plugins/datatables/dataTables.const-1.js' %}"></script>
<script src="{% static 'js/plugins/layer/layer.js' %}"></script>
<script src="{% static 'plugins/select2/select2.full.min.js' %}"></script>

<script type="text/javascript">
    // 菜单选中高亮
    $(function () {
        $('#CMDB-PORTAL').addClass('active');
        $('#CDMB-PORTAL-DEVICE_SCAN').addClass('active');

    });

    // datatables 初始化配置
    var oDataTable = null;
    $(function () {
        oDataTable = initTable();

        function initTable() {
            var oTable = $('#dtbList').DataTable($.extend(true, {},
                DATATABLES_CONSTANT.DATA_TABLES.SERVER_SIDE_OPTION,

                {
                    ajax: {
                        "url": "{% url 'cmdb:portal-device_scan-list' %}",

                    },

                    columns: [
                        DATATABLES_CONSTANT.DATA_TABLES.COLUMN.CHECKBOX,
                        {
                            data: "id",
                            width: "5%",
                        },
                        {
                            data: "sys_hostname",
                            //width : "20%",
                        },
                        {
                            data: "hostname",
                            //width : "20%",
                        },
                        {
                            data: "mac_address",
                            //width : "20%",
                        },
                         {
                            data: "auth_type",
                            //width : "20%",
                        },
                        {
                            data: "status",
                                 render: function (data, type, row, meta) {
                                    if (data == "succeed") {
                                        var ret = "<button class='btn btn-info btn-xs'>成功</button>";
                                        return ret;
                                    }
                                    if (data == "failed") {
                                        var ret = "<button class='btn btn-danger btn-xs'>失败</button>";
                                        return ret;
                                    }
                                    else  {
                                        var ret = "<button class='btn btn-default btn-xs'>未知</button>";
                                        return ret;
                                    }
                                }
                        },
                       {
                            data: "os_type",
                            //width : "20%",
                        },
                       {
                            data: "device_type",
                            //width : "20%",
                        },
                        {
                            data: "id",
                            width: "10%",
                            bSortable: "false",
                            render: function (data, type, row, meta) {
                                var ret = "";
                                var ret = "<button title='详情' onclick='doDetail("
                                    + data + ")'><i class='glyphicon glyphicon-list-alt'></i></button>";
                                ret = ret + "<button title='删除' onclick='doDelete("
                                    + data + ")'><i class='glyphicon glyphicon-trash'></i></button>";
                                return ret;
                            }
                        }],
                    }));
                return oTable;
            }

        });

    // 刷新数据
    $("#btnRefresh").click(function () {
        oDataTable.ajax.reload();
    });


   function doDetail(id){
    window.location.href="/cmdb/portal/device_scan/detail/?id="+id;
}

  //checkbox全选
    $("#checkAll").on("click", function () {
        if ($(this).prop("checked") === true) {
            $("input[name='checkList']").prop("checked", $(this).prop("checked"));
            $('#example tbody tr').addClass('selected');
        } else {
            $("input[name='checkList']").prop("checked", false);
            $('#example tbody tr').removeClass('selected');
        }
    });

    //批量删除
    $("#btnDelete").click(function () {
        if ($("input[name='checkList']:checked").length == 0) {
            layer.msg("请选择要删除的记录");
            return;
        }

        var arrId = new Array();
        $("input[name='checkList']:checked").each(function () {
            //alert($(this).val());
            arrId.push($(this).val());
        });

        sId = arrId.join(',');

        layer.alert('确定删除吗？', {
            title: '提示'
            , icon: 3 //0:感叹号 1：对号 2：差号 3：问号 4：小锁 5：哭脸 6：笑脸
            , time: 0 //不自动关闭
            , btn: ['YES', 'NO']
            , yes: function (index) {
                layer.close(index);
                $.ajax({
                    type: "POST",
                    url: "{% url 'cmdb:portal-device_scan-delete' %}",
                    data: {"id": sId, csrfmiddlewaretoken: '{{ csrf_token }}'},
                    cache: false,
                    success: function (msg) {
                        if (msg.result) {
                            layer.alert("操作成功", {icon: 1});
                            oDataTable.ajax.reload();
                        } else {
                            //alert(msg.message);
                            layer.alert("操作失败", {icon: 2});
                        }
                        return;
                    }
                });
            }
        });
    });

    //删除单个数据
    function doDelete(id) {
        layer.alert('确定删除吗？', {
            title: '提示'
            , icon: 3 //0:感叹号 1：对号 2：差号 3：问号 4：小锁 5：哭脸 6：笑脸
            , time: 0 //不自动关闭
            , btn: ['YES', 'NO']
            , yes: function (index) {
                layer.close(index);
                $.ajax({
                    type: "POST",
                    url: "{% url 'cmdb:portal-device_scan-delete' %}",
                    data: {"id": id, csrfmiddlewaretoken: '{{ csrf_token }}'},
                    cache: false,
                    success: function (msg) {
                        if (msg.result) {
                            layer.alert('删除成功', {icon: 1});
                            oDataTable.ajax.reload();
                        } else {
                            //alert(msg.message);
                            layer.alert('删除失败', {icon: 2});
                        }
                        return;
                    }
                });
            }
        });
    }

    //资产扫描
    function doScan() {
        layer.alert('确定开始扫描吗？', {
            title: '提示'
            , icon: 3 //0:感叹号 1：对号 2：差号 3：问号 4：小锁 5：哭脸 6：笑脸
            , time: 0 //不自动关闭
            , btn: ['YES', 'NO']
            , yes: function (index) {
                layer.close(index);
                $.ajax({
                    type: "GET",
                    url: "{% url 'cmdb:portal-device_scan-exec' %}",
                    cache: false,
                beforeSend:function(){
                    this.layerIndex = layer.load(2, {
                        shade: [0.1,'#fff']
                        });
                    },
                success: function (msg) {
                    layer.closeAll('loading');
                    if (msg.status == 'success') {
                        layer.alert('扫描任务已下发', {icon: 1});
                        oDataTable.ajax.reload();
                    }
                    else if (msg.status == 'already_queued') {
                        layer.alert('当前已有扫描任务正在执行', {icon: 4});
                        oDataTable.ajax.reload();
                    }
                    else {
                        //alert(msg.message);
                        layer.alert('扫描失败', {icon: 2});
                    }
                    return;
                }
                });
            }
        });
    }

     function doInbound() {
        layer.alert('确定将扫描结果导入设备管理库吗？', {
            title: '提示'
            , icon: 3
            , time: 0
            , btn: ['YES', 'NO']
            , yes: function (index) {
                layer.close(index);
                $.ajax({
                    type: "POST",
                    url: "{% url 'cmdb:portal-device_scan-inbound' %}",
                    data: {csrfmiddlewaretoken: '{{ csrf_token }}'},
                    cache: false,
                    success: function (msg) {
                        if (msg.result) {
                            layer.alert('设备已入库', {icon: 1});
                        }
                        else {
                            //alert(msg.message);
                            layer.alert('设备入库失败', {icon: 2});
                        }
                        return;
                    }
                });
            }
        });
    }
</script>
{% endblock %}